﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SqlDataAccess;
using IP.Core.IPCommon;

namespace QuanLyBanHang.GiaoDich
{
	public partial class F210_Hoa_don_nhap : Form
	{
		public F210_Hoa_don_nhap()
		{
			InitializeComponent();
			set_define_events();
		}

		#region Members
		BKIQuanLyBanHangEntities db = new BKIQuanLyBanHangEntities();
		string m_str_sua_chi_tiet_giao_dich = "Lưu thông tin";
		string m_str_them_chi_tiet_giao_dich = "Thêm sản phẩm";
		#endregion

		#region Private Methods

		private bool check_validate_data_chi_tiet_hoa_don_is_ok()
		{
			if (!CIPConvert.is_valid_number(m_txt_don_gia.Text))
			{
				MessageBox.Show("Bạn phải nhập Số!", "Thông báo");
				m_txt_don_gia.Focus();
				return false;
			}
			if (!CIPConvert.is_valid_number(m_txt_so_luong.Text))
			{
				MessageBox.Show("Bạn phải nhập Số!", "Thông báo");
				m_txt_so_luong.Focus();
				return false;
			}

			return true;
		}

		private string genMaHoaDon()
		{
			string v_str_result = "";
			v_str_result = "HDN-" + m_dtp_ngay_nhap.Value.ToString("yyyy-MM-dd") + "-" + DateTime.Now.ToString("HH'-'mm'-'ss") + "-" + DateTime.Now.Millisecond;
			return v_str_result;
		}

		private void load_data_to_listbox_san_pham()
		{
			var v_lst_san_pham = db.DM_SAN_PHAM
				.Where(x => x.MA_SAN_PHAM.Contains(m_txt_loc_san_pham.Text)
							|| x.TEN_SAN_PHAM.Contains(m_txt_loc_san_pham.Text)
							|| m_txt_loc_san_pham.Text.Equals(""))
				.Select(x => new
				{
					ID = x.ID,
					TEN_SAN_PHAM = x.TEN_SAN_PHAM
				})
				.ToList();
			m_lsb_san_pham.ValueMember = "ID";
			m_lsb_san_pham.DisplayMember = "TEN_SAN_PHAM";
			m_lsb_san_pham.DataSource = v_lst_san_pham;
		}

		private void load_data_to_listbox_hoa_don()
		{
			var v_lst_gd_hoa_don = db.GD_HOA_DON_NHAP
				.Where(x => x.MA_HOA_DON_NHAP.Contains(m_txt_loc_hoa_don.Text)
							|| x.MO_TA.Contains(m_txt_loc_hoa_don.Text)
							|| m_txt_loc_hoa_don.Text.Equals(""))
				.OrderByDescending(x => x.MA_HOA_DON_NHAP)
				.ToList();
			if (v_lst_gd_hoa_don == null)
			{
				m_lsb_hoa_don.ValueMember = "ID";
				m_lsb_hoa_don.DisplayMember = "TEN_HOA_DON";
				m_lsb_hoa_don.DataSource = null;
			}
			else
			{
				var v_lst_hoa_don = v_lst_gd_hoa_don
						.Select(x => new
						{
							ID = x.ID,
							TEN_HOA_DON = x.MA_HOA_DON_NHAP
						})
						.ToList();
				m_lsb_hoa_don.ValueMember = "ID";
				m_lsb_hoa_don.DisplayMember = "TEN_HOA_DON";
				m_lsb_hoa_don.DataSource = v_lst_hoa_don;
			}
		}

		private void load_data_to_cbo_nha_cung_cap()
		{
			var v_lst_nha_cung_cap = db.DM_NHA_CUNG_CAP
				.Select(x => new
				{
					ID = x.ID,
					TEN = x.TEN_NCC
				})
				.OrderBy(x => x.TEN)
				.ToList();
			m_cbo_nha_cung_cap.DisplayMember = "TEN";
			m_cbo_nha_cung_cap.ValueMember = "ID";
			m_cbo_nha_cung_cap.DataSource = v_lst_nha_cung_cap;
		}

		private void load_data_to_grid_chi_tiet_hoa_don()
		{
			//Lấy dữ liệu của bảng GD_CHI_TIET... lên lưới
			decimal v_dc_id_hoa_don = Convert.ToDecimal(m_lsb_hoa_don.SelectedValue);
			db = new BKIQuanLyBanHangEntities();
			var v_lst_gd_chi_tiet = db.GD_CT_HOA_DON_NHAP
				.Where(x => x.ID_HOA_DON_NHAP == v_dc_id_hoa_don)
				.ToList()
				.Select(x => new
				{
					ID = x.ID,
					TEN_SAN_PHAM = x.DM_SAN_PHAM.TEN_SAN_PHAM,
					DON_GIA_NHAP = x.DON_GIA,
					SO_LUONG = x.SO_LUONG
				})
				.ToList();
			m_grv.DataSource = v_lst_gd_chi_tiet;
			m_grv.Columns[0].Visible = false;
			m_grv.Columns[0].Width = 20;
			m_grv.Columns[1].HeaderText = "Sản phẩm";
			m_grv.Columns[1].Width = 180;
			m_grv.Columns[2].HeaderText = "Giá nhập";
			m_grv.Columns[2].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
			m_grv.Columns[2].Width = 100;
			m_grv.Columns[3].HeaderText = "Số lượng";
			m_grv.Columns[3].Width = 65;
			m_grv.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
            m_grv.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

			computedMoney();
		}

		private void computedMoney()
		{
			decimal v_dc_thanh_tien = 0;
			for (int i = 0; i < m_grv.Rows.Count; i++)
			{
				v_dc_thanh_tien += CIPConvert.ToDecimal(m_grv.Rows[i].Cells[2].Value) * CIPConvert.ToDecimal(m_grv.Rows[i].Cells[3].Value);
			}
            m_txt_thanh_tien.Text = CIPConvert.ToStr(v_dc_thanh_tien, "#,###,##");
            m_txt_da_thanh_toan.Text = CIPConvert.ToStr(m_txt_da_thanh_toan.Text, "#,###,##");
			m_txt_no_ncc.Text = CIPConvert.ToStr(v_dc_thanh_tien
									- CIPConvert.ToDecimal(m_txt_da_thanh_toan.Text), "#,###,##");
            //load_data_to_computedMoney();

		}

        //private void load_data_to_computedMoney()
        //{
        //    decimal v_dc_id_hoa_don_nhap = Convert.ToDecimal(m_lsb_hoa_don.SelectedValue);
        //    var v_hoa_don_nhap = db.GD_HOA_DON_NHAP.FirstOrDefault(x => x.ID == v_dc_id_hoa_don_nhap);

        //    m_txt_da_thanh_toan.Text = Convert.ToString(v_hoa_don_nhap.DA_THANH_TOAN);
        //}

		private void set_define_events()
		{
			this.Load += F210_Hoa_don_nhap_Load;
			this.m_cmd_luu_hoa_don.Click += m_cmd_luu_hoa_don_Click;
			this.m_txt_loc_hoa_don.TextChanged += m_txt_loc_hoa_don_TextChanged;
			this.m_txt_loc_san_pham.TextChanged += m_txt_loc_san_pham_TextChanged;
			this.m_txt_da_thanh_toan.TextChanged += m_txt_da_thanh_toan_TextChanged;
			this.m_lsb_hoa_don.SelectedIndexChanged += m_lsb_hoa_don_SelectedIndexChanged;
			this.m_lsb_san_pham.SelectedIndexChanged += m_lsb_san_pham_SelectedIndexChanged;
			this.m_cmd_xoa_san_pham.Click += m_cmd_xoa_san_pham_Click;
			this.m_cmd_them_san_pham.Click += m_cmd_them_san_pham_Click;
			this.m_dtp_ngay_nhap.ValueChanged += m_dtp_ngay_nhap_ValueChanged;
			this.m_cmd_chon_hoa_don_da_nhap.Click += m_cmd_chon_hoa_don_da_nhap_Click;
			this.m_cmd_nhap_hoa_don_moi.Click += m_cmd_nhap_hoa_don_moi_Click;
			this.m_cmd_chi_tiet_hoa_don.Click += m_cmd_chi_tiet_hoa_don_Click;
			this.m_cmd_xoa_hoa_don.Click += m_cmd_xoa_hoa_don_Click;
			this.m_grv.CellClick += m_grv_CellClick;
			this.m_cmd_luu_thong_tin.Click += m_cmd_luu_thong_tin_Click;
			this.m_cmd_huy_thao_tac.Click += m_cmd_huy_thao_tac_Click;
		}

		#endregion

		#region Events
		void F210_Hoa_don_nhap_Load(object sender, EventArgs e)
		{
			try
			{
				load_data_to_listbox_hoa_don();
				m_dtp_ngay_nhap_ValueChanged(null, null);
				m_cmd_nhap_hoa_don_moi_Click(null, null);
				load_data_to_cbo_nha_cung_cap();
				load_data_to_listbox_san_pham();
			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}

		void m_dtp_ngay_nhap_ValueChanged(object sender, EventArgs e)
		{
			try
			{
				m_txt_ma_hoa_don_nhap.Text = genMaHoaDon();
			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}

		void m_lsb_san_pham_SelectedIndexChanged(object sender, EventArgs e)
		{
			try
			{
				//Xoá trắng thông tin về sản phầm
				m_txt_don_gia.Text = "";
				m_txt_so_luong.Text = "";

				decimal v_dc_id_san_pham = Convert.ToDecimal(m_lsb_san_pham.SelectedValue);
				//Lấy giá được cập nhật gần nhất
				var v_gd_don_gia = db.GD_DON_GIA
					.Where(x => x.ID_SAN_PHAM == v_dc_id_san_pham)
					.OrderByDescending(x => x.NGAY_AP_DUNG)
					.FirstOrDefault();
				//Nếu sản phẩm này chưa được cập nhật đơn giá thì thôi, nếu có đơn giá thì gán cho textbox đơn giá
				if (v_gd_don_gia != null)
				{
					if (v_gd_don_gia.DON_GIA_NHAP != null)
					{
						m_txt_don_gia.Text = CIPConvert.ToStr(v_gd_don_gia.DON_GIA_NHAP, "#.###,##");
					}

				}
			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}
		void m_lsb_hoa_don_SelectedIndexChanged(object sender, EventArgs e)
		{
			try
			{
				m_txt_da_thanh_toan.Text = "0";
				m_txt_thanh_tien.Text = "0";
				m_txt_no_ncc.Text = "0";
			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}

		void m_txt_loc_san_pham_TextChanged(object sender, EventArgs e)
		{
			try
			{
				load_data_to_listbox_san_pham();
			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}
		void m_txt_loc_hoa_don_TextChanged(object sender, EventArgs e)
		{
			try
			{
				load_data_to_listbox_hoa_don();
			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}
		void m_txt_da_thanh_toan_TextChanged(object sender, EventArgs e)
		{
			try
			{
				computedMoney();
                //load_data_to_computedMoney();
			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}

		void m_cmd_luu_hoa_don_Click(object sender, EventArgs e)
		{
			try
			{
				GD_HOA_DON_NHAP v_gd_hoa_don_nhap = new GD_HOA_DON_NHAP();
				v_gd_hoa_don_nhap.ID_NCC = Convert.ToDecimal(m_cbo_nha_cung_cap.SelectedValue);
				v_gd_hoa_don_nhap.ID_NHAN_VIEN = QuanLyBanHang.HeThong.DangNhap.getIDUser();
				v_gd_hoa_don_nhap.MA_HOA_DON_NHAP = m_txt_ma_hoa_don_nhap.Text;
				v_gd_hoa_don_nhap.NGAY_NHAP = m_dtp_ngay_nhap.Value;
				db.GD_HOA_DON_NHAP.Add(v_gd_hoa_don_nhap);
				db.SaveChanges();
				//reload listbox chon hoa don
				load_data_to_listbox_hoa_don();
				m_grb_chon_hoa_don.Enabled = true;
				m_grb_nhap_hoa_don.Enabled = false;
				m_lsb_hoa_don.Text = v_gd_hoa_don_nhap.MA_HOA_DON_NHAP;
				m_cmd_chi_tiet_hoa_don_Click(null, null);

			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}
		void m_cmd_nhap_hoa_don_moi_Click(object sender, EventArgs e)
		{
			try
			{
				m_grb_nhap_hoa_don.Enabled = true;
				m_grb_chon_hoa_don.Enabled = false;
			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}
		void m_cmd_chon_hoa_don_da_nhap_Click(object sender, EventArgs e)
		{
			try
			{
				m_grb_nhap_hoa_don.Enabled = false;
				m_grb_chon_hoa_don.Enabled = true;
			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}
		void m_cmd_xoa_hoa_don_Click(object sender, EventArgs e)
		{
			try
			{
				//Hỏi có muốn xoá không
				if (DialogResult.Yes==MessageBox.Show("Bạn có chắc chắn muốn XOÁ HOÁ ĐƠN này và THAY ĐỔI THÔNG TIN SỐ DƯ liên quan đến hoá đơn này hay không?","Thông báo",MessageBoxButtons.YesNo))
				{
					
					decimal v_dc_id_hoa_don=CIPConvert.ToDecimal(m_lsb_hoa_don.SelectedValue);
					var v_gd_hoa_don=db.GD_HOA_DON_NHAP.FirstOrDefault(x=>x.ID==v_dc_id_hoa_don);
					var v_lst_gd_chi_tiet = db.GD_CT_HOA_DON_NHAP
						.Where(x => x.ID_HOA_DON_NHAP == v_dc_id_hoa_don)
						.ToList();
					DateTime v_dat_tu_ngay = new DateTime(
													v_gd_hoa_don.NGAY_NHAP.Value.Year
													, v_gd_hoa_don.NGAY_NHAP.Value.Month
													, v_gd_hoa_don.NGAY_NHAP.Value.Day);
					for (int i = 0; i < v_lst_gd_chi_tiet.Count; i++)
					{
						//Cập nhật số dư
						Helper.SoDu.CapNhatSoDu(
								v_lst_gd_chi_tiet[i].ID_SAN_PHAM
								, v_dat_tu_ngay
								, DateTime.Now.Date
								, -CIPConvert.ToDecimal(v_lst_gd_chi_tiet[i].SO_LUONG));
						//Xoá dữ liệu bảng GD_CHI_TIET...
						db.GD_CT_HOA_DON_NHAP.Remove(v_lst_gd_chi_tiet[i]);
						db.SaveChanges();
					}

					//Xoá bảng GD_HOA_DON...
					db.GD_HOA_DON_NHAP.Remove(v_gd_hoa_don);
					db.SaveChanges();
					MessageBox.Show("Xoá hoá đơn thành công!", "Thông báo");
					load_data_to_listbox_hoa_don();
				}
				


			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}
		void m_cmd_chi_tiet_hoa_don_Click(object sender, EventArgs e)
		{
			try
			{
				load_data_to_grid_chi_tiet_hoa_don();
                //load_data_to_computedMoney();
			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}
		void m_cmd_them_san_pham_Click(object sender, EventArgs e)
		{
			try
			{
				if (!check_validate_data_chi_tiet_hoa_don_is_ok()) return;

				decimal v_dc_id_san_pham = Convert.ToDecimal(m_lsb_san_pham.SelectedValue);
				decimal v_dc_id_hoa_don = Convert.ToDecimal(m_lsb_hoa_don.SelectedValue);
				var v_hoa_don = db.GD_HOA_DON_NHAP.FirstOrDefault(x => x.ID == v_dc_id_hoa_don);
				if (m_cmd_them_san_pham.Text.Equals(m_str_them_chi_tiet_giao_dich))
				{
					//Thêm sản phẩm
					GD_CT_HOA_DON_NHAP v_gd_chi_tiet = new GD_CT_HOA_DON_NHAP();
					v_gd_chi_tiet.ID_HOA_DON_NHAP = v_dc_id_hoa_don;
					v_gd_chi_tiet.ID_SAN_PHAM = v_dc_id_san_pham;
					v_gd_chi_tiet.SO_LUONG = Convert.ToInt16(m_txt_so_luong.Text.Trim());
					v_gd_chi_tiet.DON_GIA = Convert.ToDouble(m_txt_don_gia.Text.Trim());
					db.GD_CT_HOA_DON_NHAP.Add(v_gd_chi_tiet);
					db.SaveChanges();

					//Cập nhật thông tin về đơn giá, Lấy giá được cập nhật gần nhất
					var v_gd_don_gia = db.GD_DON_GIA
						.Where(x => x.ID_SAN_PHAM == v_dc_id_san_pham)
						.OrderByDescending(x => x.NGAY_AP_DUNG)
						.FirstOrDefault();
					//Nếu đơn giá nhập bằng đơn giá cũ thì thôi, nếu khác thì phải cập nhật lại đơn giá
					if (v_gd_don_gia == null)
					{
						v_gd_don_gia = new GD_DON_GIA();
						v_gd_don_gia.ID_SAN_PHAM = v_dc_id_san_pham;
						v_gd_don_gia.DON_GIA_NHAP = Convert.ToDouble(m_txt_don_gia.Text.Trim().Replace(",", "").Replace(".", ""));
						v_gd_don_gia.NGAY_AP_DUNG = DateTime.Now.Date;
						db.GD_DON_GIA.Add(v_gd_don_gia);
						db.SaveChanges();
					}
					else if (v_gd_don_gia.DON_GIA_NHAP == null)
					{
						v_gd_don_gia.ID_SAN_PHAM = v_dc_id_san_pham;
						v_gd_don_gia.DON_GIA_NHAP = Convert.ToDouble(m_txt_don_gia.Text.Trim().Replace(",", "").Replace(".", ""));
						v_gd_don_gia.NGAY_AP_DUNG = DateTime.Now.Date;
						db.SaveChanges();
					}
					else if (v_gd_don_gia.DON_GIA_NHAP!=Convert.ToDouble(m_txt_don_gia.Text))
					{
						v_gd_don_gia = new GD_DON_GIA();
						v_gd_don_gia.ID_SAN_PHAM = v_dc_id_san_pham;
						v_gd_don_gia.DON_GIA_NHAP = Convert.ToDouble(m_txt_don_gia.Text.Trim().Replace(",", "").Replace(".", ""));
						v_gd_don_gia.NGAY_AP_DUNG = DateTime.Now.Date;
						db.GD_DON_GIA.Add(v_gd_don_gia);
						db.SaveChanges();
					}

					//Cập nhật số dư
					DateTime v_dat_tu_ngay = new DateTime(
													v_hoa_don.NGAY_NHAP.Value.Year
													, v_hoa_don.NGAY_NHAP.Value.Month
													, v_hoa_don.NGAY_NHAP.Value.Day);
					Helper.SoDu.CapNhatSoDu(
							v_dc_id_san_pham
							, v_dat_tu_ngay
							, DateTime.Now.Date
							, CIPConvert.ToDecimal(m_txt_so_luong.Text));
				}
				else if (m_cmd_them_san_pham.Text.Equals(m_str_sua_chi_tiet_giao_dich))
				{
					//Sửa giao dịch
					decimal v_dc_id_chi_tiet_giao_dich = CIPConvert.ToDecimal(m_grv.CurrentRow.Cells[0].Value);
					var v_gd_chi_tiet = db.GD_CT_HOA_DON_NHAP.FirstOrDefault(x => x.ID == v_dc_id_chi_tiet_giao_dich);
					if (v_gd_chi_tiet != null)
					{
						DateTime v_dat_tu_ngay = new DateTime(
														v_hoa_don.NGAY_NHAP.Value.Year
														, v_hoa_don.NGAY_NHAP.Value.Month
														, v_hoa_don.NGAY_NHAP.Value.Day);
						//Nếu chỉ sửa số lượng thì trừ đi chênh lệch
						if (v_gd_chi_tiet.ID_SAN_PHAM == v_dc_id_san_pham)
						{
							Helper.SoDu.CapNhatSoDu(
								v_dc_id_san_pham
								, v_dat_tu_ngay
								, DateTime.Now.Date
								, -(decimal)v_gd_chi_tiet.SO_LUONG + CIPConvert.ToDecimal(m_txt_so_luong.Text));
						}
						else
						{
							//Nếu sửa sản phẩm thì phải cập nhật số dư cho 2 sản phẩm
							//Sản phẩm cũ, số dư: trừ đi số lượng
							Helper.SoDu.CapNhatSoDu(
								v_gd_chi_tiet.ID_SAN_PHAM
								, v_dat_tu_ngay
								, DateTime.Now.Date
								, -CIPConvert.ToDecimal(v_gd_chi_tiet.SO_LUONG));
							//Sản phẩm mới, số dư: thêm số lượng
							Helper.SoDu.CapNhatSoDu(
								v_dc_id_san_pham
								, v_dat_tu_ngay
								, DateTime.Now.Date
								, +CIPConvert.ToDecimal(m_txt_so_luong.Text));
						}

						//Sửa thông tin chi tiết hoá đơn
						v_gd_chi_tiet.ID_HOA_DON_NHAP = v_dc_id_hoa_don;
						v_gd_chi_tiet.ID_SAN_PHAM = v_dc_id_san_pham;
						v_gd_chi_tiet.SO_LUONG = Convert.ToInt16(m_txt_so_luong.Text.Trim());
						v_gd_chi_tiet.DON_GIA = Convert.ToDouble(m_txt_don_gia.Text.Trim());
						db.SaveChanges();

					}
				}
				m_cmd_huy_thao_tac_Click(null, null);

				//reload grid chi tiet hoa don
				m_cmd_chi_tiet_hoa_don_Click(null, null);
			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}
		void m_cmd_xoa_san_pham_Click(object sender, EventArgs e)
		{
			try
			{
				decimal v_dc_id_san_pham = Convert.ToDecimal(m_grv.CurrentRow.Cells[0].Value);
				decimal v_dc_id_hoa_don = Convert.ToDecimal(m_lsb_hoa_don.SelectedValue);
				var v_hoa_don = db.GD_HOA_DON_NHAP.FirstOrDefault(x => x.ID == v_dc_id_hoa_don);
				var v_gd_chi_tiet = db.GD_CT_HOA_DON_NHAP.FirstOrDefault(x => x.ID == v_dc_id_san_pham);
				DateTime v_dat_tu_ngay = new DateTime(
														v_hoa_don.NGAY_NHAP.Value.Year
														, v_hoa_don.NGAY_NHAP.Value.Month
														, v_hoa_don.NGAY_NHAP.Value.Day);
				//Cập nhật số dư
				Helper.SoDu.CapNhatSoDu(
								v_gd_chi_tiet.ID_SAN_PHAM
								, v_dat_tu_ngay
								, DateTime.Now.Date
								, -CIPConvert.ToDecimal(v_gd_chi_tiet.SO_LUONG));
				//Xoa san pham
				if (v_gd_chi_tiet != null)
				{
					db.GD_CT_HOA_DON_NHAP.Remove(v_gd_chi_tiet);
					db.SaveChanges();
					//reload grid
					m_cmd_chi_tiet_hoa_don_Click(null, null);
				}
				m_cmd_huy_thao_tac_Click(null, null);

			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}

        //void m_cmd_luu_thong_tin_Click(object sender, EventArgs e)
        //{
        //    try
        //    {
        //        decimal v_dc_id_hoa_don = CIPConvert.ToDecimal(m_lsb_hoa_don.SelectedValue);
        //        var v_gd_hoa_don = db.GD_HOA_DON_NHAP.FirstOrDefault(x => x.ID == v_dc_id_hoa_don);
        //        if (v_gd_hoa_don != null)
        //        {
        //            v_gd_hoa_don.THANH_TIEN = (double)CIPConvert.ToDecimal(m_txt_thanh_tien.Text);
        //            v_gd_hoa_don.NO_NCC = (double)CIPConvert.ToDecimal(m_txt_no_ncc.Text);
        //            v_gd_hoa_don.DA_THANH_TOAN = (double)CIPConvert.ToDecimal(m_txt_da_thanh_toan.Text);
        //        }
        //        db.SaveChanges();
        //        m_cmd_huy_thao_tac_Click(null, null);
        //    }
        //    catch (Exception v_e)
        //    {
        //        MessageBox.Show(v_e.ToString());
        //    }
        //}

        private void m_cmd_luu_thong_tin_Click(object sender, EventArgs e)
        {
            try
            {
                decimal v_dc_id_hoa_don = CIPConvert.ToDecimal(m_lsb_hoa_don.SelectedValue);
                var v_gd_hoa_don = db.GD_HOA_DON_NHAP.FirstOrDefault(x => x.ID == v_dc_id_hoa_don);
                if (v_gd_hoa_don != null)
                {
                    v_gd_hoa_don.THANH_TIEN = (double)CIPConvert.ToDecimal(m_txt_thanh_tien.Text);
                    v_gd_hoa_don.NO_NCC = (double)CIPConvert.ToDecimal(m_txt_no_ncc.Text);
                    v_gd_hoa_don.DA_THANH_TOAN = (double)CIPConvert.ToDecimal(m_txt_da_thanh_toan.Text);
                    //v_gd_hoa_don.THANH_TIEN = Convert.ToDouble(m_txt_thanh_tien.Text);
                    //v_gd_hoa_don.NO_NCC = Convert.ToDouble(m_txt_no_ncc.Text);
                    //v_gd_hoa_don.DA_THANH_TOAN = Convert.ToDouble(m_txt_da_thanh_toan);
                }
                db.SaveChanges();
                //m_cmd_huy_thao_tac_Click(null, null);
            }
            catch (Exception v_e)
            {
                MessageBox.Show(v_e.ToString());
            }
        }

		void m_cmd_huy_thao_tac_Click(object sender, EventArgs e)
		{
			m_cmd_them_san_pham.Text = m_str_them_chi_tiet_giao_dich;
			m_cmd_huy_thao_tac.Visible = false;
			//m_txt_don_gia.Text = "0";
			m_txt_so_luong.Text = "0";
		}

		void m_grv_CellClick(object sender, DataGridViewCellEventArgs e)
		{
			try
			{
				if (m_grv.CurrentRow != null)
				{
					decimal v_dc_id_giao_dich = CIPConvert.ToDecimal(m_grv.CurrentRow.Cells[0].Value);
					var v_gd_giao_dich = db.GD_CT_HOA_DON_NHAP.FirstOrDefault(x => x.ID == v_dc_id_giao_dich);
					if (v_gd_giao_dich != null)
					{
						m_lsb_san_pham.Text = v_gd_giao_dich.DM_SAN_PHAM.TEN_SAN_PHAM;
						m_txt_don_gia.Text = CIPConvert.ToStr(v_gd_giao_dich.DON_GIA, "#,###,##");
						m_txt_so_luong.Text = v_gd_giao_dich.SO_LUONG.ToString();
						m_cmd_them_san_pham.Text = m_str_sua_chi_tiet_giao_dich;
						m_cmd_huy_thao_tac.Visible = true;
					}
				}
			}
			catch (Exception v_e)
			{
				MessageBox.Show(v_e.ToString());
			}
		}

        private void m_cmd_quay_lai_Click(object sender, EventArgs e)
        {
            try
            {
                this.Close();
            }
            catch (Exception v_e)
            {
                MessageBox.Show(v_e.ToString());
            }
        }

		#endregion
	}
}
